package com.easy.dfc.mapper;


import com.easy.core.persistence.annotation.MyBatisMapper;
import com.easy.dfc.Utils.PagingUtil;
import com.easy.dfc.entity.*;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

@MyBatisMapper
public interface FactorySetMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(FactorySetWithBLOBs record);

    int insertSelective(FactorySetWithBLOBs record);

    FactorySetWithBLOBs selectByPrimaryKey(Integer id);

    FactorySetWithBLOBs selectByFactoryId(Integer FactoryId);

    FactorySetWithBLOBs selectFactoryIdBySkuId(Integer skuId);

    List<FactorySetWithBLOBs> selectBy20(PagingUtil pagingUtil);

    int updateByPrimaryKeySelective(FactorySetWithBLOBs record);

    int updateByPrimaryKeyWithBLOBs(FactorySetWithBLOBs record);

    int updateByPrimaryKey(FactorySet record);


    //******以下为全新定义
    List<Map<String,Object>> getNiceFactoryList(@Param(value = "limitSize")Integer limitSize);

    List<Map<String,Object>> getNiceFactoryTodayList(@Param(value = "limitSize")Integer limitSize);

    List<Map<String,Object>> getNiceBrandList(@Param(value = "limitSize")Integer limitSize);

    List<Map<String,Object>> getNiceProduct(@Param(value = "pageIndex")Integer pageIndex, @Param(value = "pageSize")Integer pageSize);

    List<Map<String,Object>> getBerserkProductList(@Param(value = "limitSize")Integer limitSize);

    List<Map<String,Object>> BestOnWeek(@Param(value = "type")Integer type);

    List<Map<String,Object>> BestToday(@Param(value = "pageIndex")Integer pageIndex, @Param(value = "pageSize")Integer pageSize, @Param(value = "type")Integer type);
    List<Map<String,Object>> BestTodayMore(@Param(value = "pageIndex")Integer pageIndex, @Param(value = "pageSize")Integer pageSize, @Param(value = "type")Integer type);


    List<Map<String,Object>> getNiceProductByFactoryId(@Param(value = "factoryId")Integer factoryId);

    List<Map<String,Object>> BestProductToday(@Param(value = "pageIndex")Integer pageIndex, @Param(value = "pageSize")Integer pageSize, @Param(value = "type")Integer type);

    List<Map<String,Object>> TPFactoryList(@Param(value = "pageIndex")Integer pageIndex, @Param(value = "pageSize")Integer pageSize);

    List<Map<String,Object>> TPBestProduct(@Param(value = "ageGroup")String ageGroup, @Param(value = "pageIndex")Integer pageIndex, @Param(value = "pageSize")Integer pageSize);

    List<Map<String,Object>> WPFactoryList(@Param(value = "pageIndex")Integer pageIndex, @Param(value = "pageSize")Integer pageSize);

    List<Map<String,Object>> WPBestProduct(@Param(value = "ageGroup")String ageGroup, @Param(value = "pageIndex")Integer pageIndex, @Param(value = "pageSize")Integer pageSize);

    List<Map<String,Object>> WPProduct(@Param(value = "ageGroup")String ageGroup,@Param(value = "pageIndex")Integer pageIndex, @Param(value = "pageSize")Integer pageSize, @Param(value = "day")Integer day);

    List<Map<String,Object>> DayDayProduct(@Param(value = "pageIndex")Integer pageIndex, @Param(value = "pageSize")Integer pageSize);

    List<Map<String,Object>> NiceFactory(@Param(value = "pageIndex")Integer pageIndex, @Param(value = "pageSize")Integer pageSize);

    void updateFactoryType(@Param(value = "id")Integer id, @Param(value = "type")Integer type);

    List DaySpecialOffer(@Param(value = "ageGroup")String ageGroup, @Param(value = "limitSize")Integer limitSize, @Param(value = "tdate")Date tdate);

    List DaySpecialOfferMore(ParaAllProduct para);

    List OrderMeeting(ParaEnrollQuery para);

    List<Map<String,Object>> getBrandProSaleMax();

    List<Map<String,Object>> getFactoryProSaleMax();

    List<Map<String,Object>> ImplosionList(ParaAllProduct para);

    List<Map<String,Object>> getJumpTailTime();

    List<Map<String,Object>> getJumpTailList(ParaAllProduct para);

    List<Map<String,Object>> getCateories(@Param(value = "typeId")Integer typeId);

    List<Map<String,Object>> getProducts(ParaFactoryProducts para);

    Map<String,Object> OrderMeetingDetail(ParaEnrollQuery para);

    List<Map<String,Object>> OrderMeetingDetailProduct(ParaEnrollQuery para);

}